package com.finalcial.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

/**
 * 数据设置界面
 * @author Administrator
 *
 */
public interface DeptLevelDao {

	/**
	 * 
	 * @return 所有部门名称
	 */
	public List<Map<String, Object>> getDepartmentName();
	
	/**
	 * 
	 * @return 所有职称名称
	 */
	public List<Map<String, Object>> getUserTypeName();
	
	
	/**
	 * 
	 * @return 所有费用类型名称
	 */
	public List<Map<String, Object>> getCostTypeName();
	
	/**
	 * @param 部门名称
	 * @return 相对应的已有职位名称
	 */
	public List<Map<String, Object>> getDeptUserTypeName(@Param("departmentId")Integer departmentId);
	
	
	/** 根据（已知部门）职位ID查找费用类型的金额
	 * @param （已知部门）职位ID
	 * @return 费用类型的金额,费用类型ID
	 */
	public List<Map<String, Object>> getSalary(@Param("userTypeId")Integer userTypeId);
	
	
	/**根据部门ID给部门增加职位名称--员工类型表
	 * @param 部门ID,职位名称
	 * @return 
	 */
	public Integer insertDeptUserTypeName(@Param("departmentId")Integer departmentId,@Param("userTypeName")String userTypeName);
	
	
	/**根据职称ID和费用类型ID修改费用类型金额 --员工类型费用类型表
	 * @param 职称ID,费用类型ID,费用类型金额
	 * @return
	 */
	public Integer updateDeptCostSalary(@Param("userTypeId")Integer userTypeId,@Param("costTypeId")Integer costTypeId,@Param("salary")Integer salary);
	
	
	/**新增部门名称--部门表
	 * @param 部门名称
	 * @return
	 */
	public Integer insertDepartmentName(@Param("departmentName")String departmentName);
	
	
	/** 根据职称ID和费用类型ID新增费用类型金额 --员工类型费用类型表
	 * @param 职称ID,费用类型ID,费用类型金额
	 * @return
	 */
	public Integer insertDeptCostSalary(@Param("userTypeId")Integer userTypeId,@Param("costTypeId")Integer costTypeId,@Param("salary")Integer salary);
	
	/** 根据部门id和职级名称查找职级ID
	 * @param 部门ID,职位名称
	 * @return 职级ID
	 */
	public Integer getDeptUserTypeId(@Param("departmentId")Integer departmentId,@Param("userTypeName")String userTypeName);
	/**
	 * 通过部门名查找部门ID
	 * @param deptName 部门名字
	 * @return
	 */
	public Integer getDeptNameById(@Param(value="deptName")String deptName);
}
